package com.sgcc.pda.hzaidl.impl;

import com.sgcc.pda.hzaidl.AIDLServiceImpl;
import com.sgcc.pda.hzaidl.entity.RequestBean;
import com.sgcc.pda.hzaidl.entity.ResponseBean;
import com.sgcc.pda.tools.JsonUtils;
import com.sgcc.pda.util.PlatConstant;
import com.sgcc.platforminterface.PlatfInterfManager;

/**
 * 描述：埋点日志与平台接口交互工具类
 * 作者：jianiuqi 2020-09-08 10:06
 * 修改描述：
 * 修改人：XXX 2020-09-08 10:06
 * 修改版本：
 */
public class BehaviorUtil {

    private static AIDLServiceImpl getAIDLService() {
        return AIDLServiceImpl.getInstance();
    }

    /**
     * 硬件服务方法，带返回值
     *
     * @param methodName 方法名
     * @param paramJson  参数列表
     */
    public static String requestBehaviorString(String methodName, String paramJson) {
        RequestBean requestBean = getBehavior(methodName, paramJson);
        String result = getAIDLService().post(requestBean.toString(), null);
        ResponseBean responseBean = JsonUtils.toBean(result, ResponseBean.class);
        if (responseBean != null && responseBean.getRetCode() == 1) {
            return responseBean.getMsgJson();
        } else {
            return "";
        }
    }

    /**
     * 硬件方法组织请求参数
     *
     * @param methodName 方法名
     * @param paramJson  参数
     * @return 返回请求对像
     */
    private static RequestBean getBehavior(String methodName, String paramJson) {
        return new RequestBean(PlatConstant.IWebCmd.UTIL, methodName, paramJson, PlatfInterfManager.getInstance().getPackageName(), "");
    }
}
